home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
c
/
datelib.exe
/
CHECKTIM.C
< prev
next >
Wrap
C/C++ Source or Header
|
1992-03-27
|
4KB
|
134 lines
static char checktime_prog[] = "@(#)Testung auf gültige Zeit";
static char checktime_ver[] = "@(#)ver 1.00/kr ; 09.06.91";
/* checktime Funktion testet auf gültigen Zeit-String
**
** Autor Klaus Rath
**
** Deklaration
**
** Übergabe Die Funktion erwartet einen String in einem der folgenden
** Formate :
** hh:mm[:ss] -- Formate 1,2
** hh.mm[.ss] -- Formate 3,4
** hhmm[ss] -- Formate 5,6 (für DDB/4)
** (sssss | mmmm -- Kurzformate 7,8 (nur Sek./Min.)
** noch nicht implementiert !!!!! )
**
** Rückgabe int [format|FALSE] wobei z.Zt. 1 <= format <=6
**
** Anmerkungen Sollten keine Sekunden im Übergabestring angegeben worden
** sein, nimmt die Funktion 00 s an (Formate 1-6).
**
** Änderungen 1.00 ; 09.06.91
** - Erste Version
*/
#define DEBUG
#include <stdio.h>
#include <string.h>
#ifdef __TURBOC__
#include <stdlib.h>
#endif
#include "datum.h"
int checktime(char *tstring)
{
char stunden_s[3];
char minuten_s[3];
char sekunden_s[3];
int stunden_z;
int minuten_z;
int sekunden_z;
int laenge;
int format;
/* Längenüberprüfung :
*/
laenge = strlen(tstring);
if ( laenge == 4 || laenge == 5 || laenge == 6 || laenge == 8 )
;
else
return(FALSE);
/* Format überprüfen und umkopieren :
*/
if ( ( tstring[2] == ':' && tstring[5] == ':' && laenge == 8 )
||
( tstring[2] == '.' && tstring[5] == '.' && laenge == 8 ) ) {
stunden_s[0] = tstring[0];
stunden_s[1] = tstring[1];
stunden_s[2] = '\0';
minuten_s[0] = tstring[3];
minuten_s[1] = tstring[4];
minuten_s[2] = '\0';
sekunden_s[0] = tstring[6];
sekunden_s[1] = tstring[7];
sekunden_s[2] = '\0';
if ( tstring[2] == ':' )
format = TI_HMS_D;
else if ( tstring[2] == '.' )
format = TI_HMS_P;
else
return(FALSE);
} /* ENDE: Formate 2,4 : hh[:.]mm[:.]ss */
else if ( ( tstring[2] == ':' || tstring[2] == '.' ) && laenge == 5 ) {
stunden_s[0] = tstring[0];
stunden_s[1] = tstring[1];
stunden_s[2] = '\0';
minuten_s[0] = tstring[3];
minuten_s[1] = tstring[4];
minuten_s[2] = '\0';
sekunden_s[0] = '0';
sekunden_s[1] = '0';
sekunden_s[2] = '\0';
if ( tstring[2] == ':' )
format = TI_HM_D;
else if ( tstring[2] == '.' )
format = TI_HM_P;
else
return(FALSE);
} /* ENDE: Formate 1,3 : hh[:.]mm */
else if ( laenge == 4 || laenge == 6 ) { /* Datenbank-Format */
stunden_s[0] = tstring[0];
stunden_s[1] = tstring[1];
stunden_s[2] = '\0';
minuten_s[0] = tstring[2];
minuten_s[1] = tstring[3];
minuten_s[2] = '\0';
if ( laenge == 6 ) {
sekunden_s[0] = tstring[4];
sekunden_s[1] = tstring[5];
sekunden_s[2] = '\0';
format = TI_HMS_DB;
}
else if ( laenge == 4 ) {
sekunden_s[0] = '0';
sekunden_s[1] = '0';
sekunden_s[2] = '\0';
format = TI_HM_DB;
}
else
return(FALSE);
} /* ENDE: Datenbankformate 5,6 : hhmm[ss] */
else
return(FALSE);
/* ENDE:if(Formatprüfung und Kopierung) */
/* Konvertierung :
*/
stunden_z = atoi(stunden_s);
minuten_z = atoi(minuten_s);
sekunden_z = atoi(sekunden_s);
if ( stunden_z > 23 || stunden_z < 0 ||
minuten_z > 59 || minuten_z < 0 ||
sekunden_z > 59 || sekunden_z < 0 )
return(FALSE);
return(format);
} /* ENDE: checktime() */